Image processing tasks include automated and semi-automated image editing tasks such as in-painting, de-noising, super-resolution, auto-color balance, depth of field manipulation, as well as computer vision tasks which typically involve processing images captured from the real world in order to interpret the information in those images.
Some existing approaches to computer vision tasks use a bottom up approach with a sequence of low level image processing steps. For example detecting blobs, lines, edges, and corners and using those results to form models of objects in a scene.
Existing approaches for image de-noising or in-painting often involve the use of filters, thresholding and in the case of in-painting, identifying suitable textures to be used to fill missing regions in an image. Often the filters, thresholding processes and texture identification processes are specified by an operator or are identified on a trial and error basis.
In general it is difficult for global information in images to be taken into account in computer vision tasks. For example, human operators who in-paint an image with missing regions use their knowledge of the whole image and the meaning of its contents to achieve high quality results whereas many computer implemented image in-painting processes are unable to achieve the same quality.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known image processing systems.